# 本地NFS(Network File System) 主要使用在局域网下，让不同的主机之间可以共享文件、或者目录数据。
# 主要用于linux系统上实现文件共享的一种协议，其客户端主要是Linux。
# 没有用户认证机制，且数据在网络上传送的时候是明文传送，一般只能在局域网中使用。
# 不需要输入账号密码，在配置文件中，定义好可访问该NFS的机器，ip地址即可。
# 还得借助其他用户认证的插件，结合NFS，提高安全性。支持多节点同时挂载及并发写入。

# 主要用于linux之间共享目录

# ip_address=$(hostname -I | awk '{print $1}')
# if [[ $ip_address != 172.16.93.* ]]; then
    # exit(0)
# fi

cpu_model=$(cat /proc/cpuinfo | grep "model name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/^[ \t]*//')
if [[ $cpu_model != *"i7-8700K"* ]]; then
    exit(0)
fi

# 安装
sudo apt install nfs-kernel-server

# 存放到Public目录的文件，要给rw权限，不然网络上其他用户无法读写
sudo ln -s ~/vimrc/linux_config/inotifywait.sh /etc/init.d/inotifywait.sh

# /etc/exports 在该文件末尾添加下面的一行
# /home/wj/Public  *(rw,sync,no_root_squash,no_subtree_check)
sudo sed -i '$a\/home/wj/Public  *(rw,sync,no_root_squash,no_subtree_check)' /etc/exports
sudo sed -i '$a\/backup/swap          *(rw,sync,no_root_squash,no_subtree_check)' /etc/exports

# * 所有可以ping同该主机的用户
# 192.168.1.* 指定网段，在该网段中的用户可以挂载 
# 192.168.1.12 只有该用户能挂载
# rw：可读可写。如果想要只读的话，可以指定 ro。
# sync：文件同步写入到内存与硬盘中。
# async：文件会先暂存于内存中，而非直接写入硬盘。
# no_root_squash：登入 nfs 主机使用分享目录的使用者，如果是 root 的话，那么对于这个分享的目录来说，他就具有 root 的权限！

# 重启nfs服务
sudo /etc/init.d/nfs-kernel-server restart


# linux 客户端
# sudo apt-get install nfs-common
# sudo mount 172.16.93.237:/home/wj/Public/ /home/wj/Public/
# 自动挂载
# 在 /etc/fstab 中（一般是最后）添加一行
#  172.16.93.237:/home/wj/Public/ /home/wj/Public/ nfs defaults 0 0

# windows 映射网络存储器, 需要在程序里打开NFS服务
# \\192.168.93.40\home\wj\Public


# 命令行挂载windows上nfs服务器
# sudo mount -t nfs -o nolock 192.168.93.95:/nfs /home/wj/nfs
# 192.168.93.95:/nfs /home/wj/nfs/ nfs defaults 0 0

# 命令行挂载威联通nas
# 帐号：admin, 密码：public123
# sudo mount -t nfs 192.168.93.90:/Data8/wj ~/nfs
# 自动挂载威联通nas, 在 /etc/fstab 中（一般是最后）添加一行
sudo sed -i '$a \\n192.168.93.90:/Data8/wj /home/wj/nfs/ nfs defaults 0 0' /etc/fstab

# 卸载
# sudo umount /home/wj/nfs


# 没有网络连接时，挂载NFS服务器，导致系统启动时间过长
192.168.93.90:/Data8/wj  /home/wj/nfs  nfs  noauto  0  0
